home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 005 / epistat.arc / NORMAL.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1983-08-18  |  4.0 KB  |  82 lines

  1. 1  REM                    NORMAL DISTRIBUTION
  2. 2  REM             Written by Tracy L. Gustafson, M.D.
  3. 3  REM            Round Rock, Texas. Version 2.0, 1983
  4. 5  DEF SEG=&H40
  5. 6  A=PEEK(&H17): IF NOT(A AND &H20) THEN POKE &H17,(A AND (NOT &H20)) OR &H20
  6. 10  DEF SEG: KEY OFF: SCREEN 0,0: WIDTH 80: COLOR 7,0,1
  7. 15  CLEAR: OPTION BASE 1: DEFINT A-C,N,T,Z: DEFSTR D
  8. 20  CLS: PRINT TAB(20);"KEY";STRING$(34,205);"CLOSE"
  9. 22  PRINT TAB(20);"OPEN NORMAL DISTRIBUTION (two-tailed) OPEN"
  10. 25  PRINT TAB(20);"SCREEN";STRING$(34,205);"LOAD"
  11. 30  PRINT: PRINT "Do you want to:": PRINT
  12. 40  PRINT TAB(10);"1.)  Determine if the mean of your sample is significantly": PRINT TAB(16);"different from the population mean.": PRINT
  13. 50  PRINT TAB(10);"2.)  Determine what percent of test values lie within": PRINT TAB(16);"a given range.": PRINT
  14. 60  PRINT TAB(10);"3.)  Evaluate a known Z value.": PRINT: PRINT
  15. 70  PRINT TAB(18);: INPUT "Enter your choice:   ",ASUB: IF ABS(ASUB-2)>1.1 THEN BEEP: GOTO 70
  16. 80  ON ASUB GOTO 90,200,300
  17. 90  CLS: PRINT TAB(8);"COMPARING SAMPLE MEAN TO POPULATION MEAN (two-tailed Z test)"
  18. 100  PRINT TAB(8);STRING$(60,205)
  19. 110  PRINT: PRINT: AP=CSRLIN: PRINT TAB(8);"What is the name of the DATAFILE you wish to analyze?"
  20. 115  PRINT TAB(5);"(Enter RETURN if you want to enter known MEAN and STD. DEV.)"
  21. 117  LOCATE AP,66: INPUT "",FILE$: ON ERROR GOTO 460
  22. 120  IF FILE$="" THEN 170 ELSE OPEN FILE$ FOR INPUT AS #1: INPUT #1, A,C
  23. 125  DIM D(A,C),CS(A,C),T(A),N$(A),X(A),X2(A),MD(A),SD(A)
  24. 130  FOR T=1 TO A: INPUT #1, T(T): NEXT
  25. 135  FOR T=1 TO A: FOR Z=1 TO C: INPUT #1, D(T,Z): NEXT: NEXT
  26. 140  FOR T=1 TO A: FOR Z=1 TO T(T): INPUT #1, CS(T,Z): NEXT: NEXT
  27. 145  FOR T=1 TO A: INPUT #1, N$(T),X(T),X2(T),MD(T),SD(T): NEXT: CLOSE #1
  28. 150  PRINT: PRINT: PRINT TAB(10);:  INPUT;"What is the SAMPLE NUMBER you wish to analyze?   ",NS: PRINT: PRINT TAB(15);
  29. 152  IF NS>A THEN BEEP: PRINT "This datafile has only";A;"samples.": GOTO 150
  30. 153  PRINT "This sample, `";N$(NS);"' has a MEAN of"; X(NS)/T(NS): PRINT
  31. 155  PRINT TAB(10);:INPUT "What is the POPULATION MEAN for this variable?   ",M
  32. 160  XZ=(X(NS)/T(NS)-M)/SD(NS): GOSUB 320
  33. 165  PRINT TAB(5);:INPUT "Do you want to evaluate another MEAN using this DATAFILE? (Y or N)  ",A$: IF A$="y" OR A$="Y" THEN CLS: GOTO 150 ELSE 420
  34. 170  PRINT: PRINT: PRINT TAB(25);
  35. 175  INPUT "What is the SAMPLE MEAN?   ",SM: PRINT: PRINT TAB(21);
  36. 180  INPUT "What is the POPULATION MEAN?   ",M: PRINT: PRINT TAB(11);
  37. 185  INPUT "What is the SAMPLE STANDARD DEVIATION?   ",SV
  38. 190  XZ=(SM-M)/SV: GOSUB 320
  39. 195  INPUT "Do you want to evaluate another known SAMPLE MEAN? (Y or N)  ",A$
  40. 197  IF A$="y" OR A$="Y" THEN CLS: GOTO 170 ELSE 420
  41. 200  CLS: PRINT TAB(17);"PERCENT OF TEST VALUES IN A GIVEN RANGE"
  42. 202  PRINT TAB(17);STRING$(39,205): PRINT: PRINT
  43. 205  PRINT TAB(20);:INPUT "What is the MEAN of this test?   ",SM: PRINT
  44. 210  PRINT TAB(15);:INPUT "What is the STANDARD DEVIATION of this test?   ",SV
  45. 220  PRINT: PRINT TAB(20);"Enter limits of RANGE in question:": PRINT TAB(21);"LOWER LIMIT";TAB(41);"UPPER LIMIT"
  46. 225  PRINT TAB(25);:INPUT;"",LL: PRINT TAB(45);: INPUT "",UL
  47. 230  XZ=(LL-SM)/SV: GOSUB 260: PC=P
  48. 235  XZ=(UL-SM)/SV: GOSUB 260: PC=(PC-P)*100
  49. 240  PRINT: PRINT: PRINT: COLOR 0,7
  50. 242  PLAY "MB T160 L16 O4 B-A- L6 B-"
  51. 245  PRINT TAB(12);"The PERCENT of test values in this range = ";:IF PC<100 THEN PRINT PC; ELSE PRINT "> 99.99999";
  52. 250  PRINT TAB(79): COLOR 7,0: PRINT: PRINT: PRINT: PRINT TAB(10);: INPUT "Do you want to analyze another TEST RANGE? (Y or N)  ",A$
  53. 255  IF A$="y" OR A$="Y" THEN 200 ELSE 420
  54. 260  IF ABS(XZ)>6 THEN P=0: GOTO 280
  55. 265  R=1/SQR(EXP(XZ*XZ)*6.28319): W=1/((ABS(XZ)*0.231642)+1)
  56. 270  W2=W*W: PT=(W*0.319382)-(W2*0.356564)+(W*W2*1.78148)-(W2*W2*1.82126)+(W2*W2*W*1.33027): P=PT*R
  57. 280  IF XZ<0 THEN P=1-P
  58. 285  RETURN
  59. 300  CLS: PRINT TAB(12);"EVALUATING Z VALUE - NORMAL DISTRIBUTION (two-tailed)"
  60. 305  PRINT TAB(12);STRING$(53,205): PRINT
  61. 310  PRINT: PRINT TAB(25);: INPUT "Enter Z value:   ",XZ: GOSUB 320: GOTO 400
  62. 320  IF ABS(XZ)>6 THEN P=0: GOTO 360
  63. 330  R=1/SQR(EXP(XZ*XZ)*6.28319): W=1/((ABS(XZ)*0.231642)+1)
  64. 340  W2=W*W: PT=(W*0.319382)-(W2*0.356564)+(W*W2*1.78148)-(W2*W2*1.82126)+(W2*W2*W*1.33027)
  65. 350  P=2*PT*R
  66. 360  PLAY "MB ML T180 L8 O1 E- L16 O4 E-GB- O5 E- O4 B-GE- O1 L3 E-"
  67. 370  PRINT: PRINT: PRINT TAB(10);: COLOR 0,7
  68. 375  PRINT TAB(28);"P = ";
  69. 380  IF P<1E-06 THEN PRINT "< 10 (-6)";TAB(65) ELSE PRINT P;TAB(65)
  70. 390  COLOR 7,0: PRINT: PRINT: PRINT: PRINT: PRINT TAB(10);
  71. 395  RETURN
  72. 400  INPUT "Do you want to evaluate another Z value? (Y or N)  ",A$
  73. 410  IF A$="y" OR A$="Y" THEN 300
  74. 420  PRINT: PRINT
  75. 430  INPUT "  Do you want to perform another analysis using the NORMAL DISTRIBUTION?  ",A$
  76. 440  IF A$="y" OR A$="Y" THEN 10
  77. 450  END
  78. 460  BEEP: PRINT: IF ERL=120 AND ERR=53 THEN PRINT: PRINT TAB(13); "I cannot find a file by that name on drive "; ELSE 490
  79. 470  IF MID$(FILE$,2,1)=":" THEN DR$=LEFT$(FILE$,2) ELSE DR$="A:"
  80. 480  PRINT DR$: PRINT "Your files are:": FILES DR$+"*.*": RESUME 110
  81. 490  ON ERROR GOTO 0
  82.